set(gd_dx11_device_files
	Device.cpp
	Device.h
	DeviceContext.h
	DeviceContext.inl
	DeviceContext.cpp
)

set(gd_dx11_main_files
	defs.h
	dllmain.cpp
	Driver.cpp
	Driver.h
	gd_dx11.def
	StringConversions.cpp
	StringConversions.h
)

set(gd_dx11_primitives_files
	BufferImpl.cpp
	BufferImpl.h
	IndexBufferImpl.cpp 
	IndexBufferImpl.h 
	Primitive.cpp
	Primitive.h
	PrimitiveBuilder.cpp
	PrimitiveBuilder.h
	VertexBufferImpl.cpp 
	VertexBufferImpl.h 
)

set(gd_dx11_shaders_files
	BaseShaderImpl.cpp
	BaseShaderImpl.h
	InputLayout.cpp
	InputLayout.h
	PixelShaderImpl.cpp
	PixelShaderImpl.h
	ShaderBuilder.cpp
	ShaderBuilder.h
	VertexShaderImpl.cpp
	VertexShaderImpl.h
)

set(gd_dx11_vertices_files
)

set(gd_dx11_all_files
	${common_misc_files}
	${gd_dx11_device_files}
	${gd_dx11_main_files}
	${gd_dx11_primitives_files}
	${gd_dx11_shaders_files}
	${gd_dx11_vertices_files}
)

add_library(gd_dx11 MODULE ${gd_dx11_all_files})
add_libs_target(gd_dx11)

target_link_libraries (gd_dx11 app_win core gd mem resource_manager utils) 

source_group(device FILES ${gd_dx11_device_files})
source_group(main FILES ${gd_dx11_main_files})
source_group(primitives FILES ${gd_dx11_primitives_files})
source_group(shaders FILES ${gd_dx11_shaders_files})
source_group(vertices FILES ${gd_dx11_vertices_files})

add_common_properties(gd_dx11)

set_target_properties (gd_dx11 PROPERTIES
	LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})

install (TARGETS gd_dx11 DESTINATION bin)
